package rdd.split;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

//1.使用saveAsTextFile查看分区情况
//2.分区数确定
//  ①环境核数，通过loacl[]确定
//  ②设置spark.default.parallelism默认值
//  ③通过通过parallelize和textFile手动添加第二个参数确定
//  优先级按照从下到上
//使用对接内存进行
public class Scala27_Split_2 {
    public static void main(String[] args) {
        final SparkConf conf = new SparkConf();
        conf.setMaster("local[*]");                             //我的电脑是8核，应该有8个分区
        conf.setAppName("spark");
        conf.set("spark.default.parallelism","4");              //设置分区的默认值为4

        final List<String> names = Arrays.asList("zhangsan","lsi","wangwu");
        final JavaSparkContext jsc = new JavaSparkContext(conf);
        //final JavaSparkContext jsc1 = new JavaSparkContext("local","spark");        //可以不传入spark配置对象，可以直接当作参数输入
        final JavaRDD<String> rdd = jsc.parallelize(names,2);               //对接内存数据源，也就是集合，形成rdd数据模型,手动定义分区数量
        rdd.saveAsTextFile("output");

    }
}
